/*
 * Copyright (C) 2010-2011 Comcast Cable.  All Rights Reserved.
 */
package com.hercules.android.receiver.model.objects;

/**
 * <p>This class represents the font resource which allows a text resource to be displayed in any font that is natively
 * available to the target receiver. It is a simple JavaBean (POJO) that provides getters and setters for all private
 * attributes and performs no argument validation in the setters.</p>
 *
 * <p><strong>Thread safety:</strong> This class is mutable and not thread safe.</p>
 *
 * @author saarixx, jmn
 * @version 1.0
 */
public class XREFont extends XREResource {

    /**
     * <p>Constant for built-in font family: "with-serif".</p>
     *
     * <p>Can be any value.</p>
     *
     * <p>Has getter and setter.</p>
     */
    public static final String FAMILY_WITH_SERIF = "with-serif";

    /**
     * <p>Constant for built-in font family: "without-serif".</p>
     *
     * <p>Can be any value.</p>
     *
     * <p>Has getter and setter.</p>
     */
    public static final String FAMILY_WITHOUT_SERIF = "without-serif";

    /**
     * <p>Constant for built-in font family: "monospaced".</p>
     *
     * <p>Can be any value.</p>
     *
     * <p>Has getter and setter.</p>
     */
    public static final String FAMILY_MONOSPACED = "monospaced";

    /**
     * <p>Constant for built-in font style: "NORMAL".</p>
     *
     * <p>Can be any value.</p>
     *
     * <p>Has getter and setter.</p>
     */
    public static final String STYLE_NORMAL = "NORMAL";

    /**
     * <p>Constant for built-in font style: "BOLD".</p>
     *
     * <p>Can be any value.</p>
     *
     * <p>Has getter and setter.</p>
     */
    public static final String STYLE_BOLD = "BOLD";

    /**
     * <p>Constant for built-in font style: "ITALIC".</p>
     *
     * <p>Can be any value.</p>
     *
     * <p>Has getter and setter.</p>
     */
    public static final String STYLE_ITALIC = "ITALIC";

    /**
     * <p>Constant for built-in font style: "BOLDITALIC".</p>
     *
     * <p>Can be any value.</p>
     *
     * <p>Has getter and setter.</p>
     */
    public static final String STYLE_BOLDITALIC = "BOLDITALIC";

    /**
     * <p>The font family to use. If omitted, the receiver's default font is used.</p>
     *
     * <p>Can be any value.</p>
     *
     * <p>Has getter and setter.</p>
     */
    private String family;

    /**
     * <p>The font style. Valid values are: "NORMAL", "BOLD", "ITALIC" and "BOLDITALIC". Defaults to "NORMAL".</p>
     *
     * <p>Can be any value.</p>
     *
     * <p>Has getter and setter.</p>
     */
    private String style = STYLE_NORMAL;

    /**
     * <p>Creates new instance of {@link XREFont} class.</p>
     */
    public XREFont() {
        // empty constructor
    }

    /**
     * <p>Retrieves the font family to use.</p>
     *
     * @return the font family to use
     */
    public String getFamily() {
        return family;
    }

    /**
     * <p>Sets the font family to use.</p>
     *
     * @param family the font family to use
     */
    public void setFamily(String family) {
        this.family = family;
    }

    /**
     * <p>Retrieves the font style.</p>
     *
     * @return the font style
     */
    public String getStyle() {
        return style;
    }

    /**
     * <p>Sets the font style.</p>
     *
     * @param style the font style
     */
    public void setStyle(String style) {
        this.style = style;
    }
}
